package com.daoliuhe.scaffold.mapper;

import com.daoliuhe.scaffold.model.Role;
import com.daoliuhe.scaffold.model.UserGroup;
import com.daoliuhe.scaffold.model.UserGroupRole;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;

/**
 * 用户组角色关系
 */
@Mapper
public interface UserGroupRoleMapper {

    int deleteByPrimaryKey(BigDecimal id);

    int insert(UserGroupRole record);

    int insertSelective(UserGroupRole record);

    UserGroupRole selectByPrimaryKey(BigDecimal id);

    int updateByPrimaryKeySelective(UserGroupRole record);

    int updateByPrimaryKey(UserGroupRole record);

    /**
     * 查询用户组和角色的关系
     * @param record
     * @return
     */
    List<UserGroupRole> select(UserGroupRole record);

    /**
     * 查询用户组管理的角色分页数据
     * @param record
     * @return
     */
    List<Role> getRolePageData(UserGroupRole record);

    /**
     * 查询用户组管理的角色分页总数
     * @param record
     * @return
     */
    int getRolePageCount(UserGroupRole record);

    /**
     * 查询角色关联的用户组管理的分页数据
     * @param record
     * @return
     */
    List<UserGroup> getUserGroupPageData(UserGroupRole record);

    /**
     * 查询角色关联的用户组管理的总数
     * @param record
     * @return
     */
    int getUserGroupPageCount(UserGroupRole record);

    /**
     * 根据用户组id,角色id集合删除关系
     * @param userGroupId
     * @param roleIds
     * @return
     */
    int deleteRelationForUserGroup(@Param("userGroupId") String userGroupId, @Param("roleIds") List<String> roleIds);

    /**
     * 根据用户组id集合,角色id删除关系
     * @param userGroupIds
     * @param roleId
     * @return
     */
    int deleteRelationForRole(@Param("userGroupIds") List<String> userGroupIds, @Param("roleId") String roleId);

    /**
     * 根据工号查询角色
     * @param loginId
     * @return
     */
    List<Role> getRolesByUserLoginId(@Param("loginId") String loginId);

}